package nl.uva.science.pico.stacklanguage.types;

abstract public class Instr extends nl.uva.science.pico.stacklanguage.AbstractType {
  public Instr(nl.uva.science.pico.stacklanguage.Factory factory, aterm.ATermList annos, aterm.AFun fun, aterm.ATerm[] args) {
     super(factory, annos, fun, args);
  }

  public boolean isEqual(Instr peer) {
    return super.isEqual(peer);
  }

  public boolean isSortInstr()  {
    return true;
  }

  public boolean isNat() {
    return false;
  }

  public boolean isStr() {
    return false;
  }

  public boolean isMinus() {
    return false;
  }

  public boolean isAdd() {
    return false;
  }

  public boolean isMult() {
    return false;
  }

  public boolean isDiv() {
    return false;
  }

  public boolean isConcat() {
    return false;
  }

  public boolean isIfequal() {
    return false;
  }

  public boolean isIflessequal() {
    return false;
  }

  public boolean isIfless() {
    return false;
  }

  public boolean isGoto() {
    return false;
  }

  public boolean isPop() {
    return false;
  }

  public boolean isCount() {
    return false;
  }

  public boolean isStore() {
    return false;
  }

  public boolean isLoad() {
    return false;
  }

  public boolean isSkip() {
    return false;
  }

  public boolean isStop() {
    return false;
  }

  public boolean hasNatCon() {
    return false;
  }

  public boolean hasStrCon() {
    return false;
  }

  public int getNatCon() {
     throw new UnsupportedOperationException("This Instr has no NatCon");
  }

  public Instr setNatCon(int _NatCon) {
     throw new IllegalArgumentException("Illegal argument: " + _NatCon);
  }

  public String getStrCon() {
     throw new UnsupportedOperationException("This Instr has no StrCon");
  }

  public Instr setStrCon(String _StrCon) {
     throw new IllegalArgumentException("Illegal argument: " + _StrCon);
  }

}

